package com.irssproject.app.web.action.lectorRSS;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.irssproject.app.bean.lectorRSS.Etiqueta;
import com.irssproject.app.bean.lectorRSS.Subscripcio;
import com.irssproject.app.bean.main.Usuari;
import com.irssproject.app.service.lectorRSS.iface.SubscripcioService;
import com.irssproject.app.utils.Constants;
import com.irssproject.app.web.action.JSONWrappers.SubscripcioJSONWrapper;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("unchecked")
public class LlistesAutocompleteAction extends ActionSupport{
	
	private static final long serialVersionUID = 1L;

	private Map<String,String> subscripcions;
	private List<String> etiquetes;
	
	private List<SubscripcioJSONWrapper> liSubscripcions;
	
	private Map<String, Object> session;

	SubscripcioService subscripcioService;
	
	public LlistesAutocompleteAction(SubscripcioService subscripcioService) {
		this.subscripcioService = subscripcioService;
	}
	public void setEtiquetes(List<String> etiquetes) {
		this.etiquetes = etiquetes;
	}

	public List<String> getEtiquetes() {
		return etiquetes;
	}

	public void setLiSubscripcions(List<SubscripcioJSONWrapper> liSubscripcions) {
		this.liSubscripcions = liSubscripcions;
	}

	public List<SubscripcioJSONWrapper> getLiSubscripcions() {
		return liSubscripcions;
	}
	
	public void setSession(Map<String, Object> arg0) {
		session = arg0;
	}
	
	public Map<String,Object> getSession(){
		return session;
	}
	

	public String listEtiquetesAutocomplete()
	{	
		List<Etiqueta> le = subscripcioService.getListEtiquetes();
		
		Iterator it = le.iterator();
		etiquetes = new ArrayList<String>();
		while(it.hasNext())
		{
			Etiqueta e = (Etiqueta)it.next();
			etiquetes.add(e.getNom());
		}
		return SUCCESS;
	}
	
//	public String listSubscripcionsAutocomplete()
//	{	
//		Map<String,Object> session = ActionContext.getContext().getSession();
//		Usuari usuari = ((Usuari)session.get(Constants.SESSIO_USUARI_AUTENTICAT));
//
//		List<Subscripcio> li = subscripcioService.getListSubscripcions(usuari);
//
//		Iterator<Subscripcio> it = li.iterator();
//		
//		subscripcions = new HashMap<String,String>();
//		
//		while(it.hasNext())
//		{
//			String titol = it.next().getFeed().getTitol();
//			String url = it.next().getFeed().getLink();
//			
//			if (titol.length()>20)
//			{
//				titol = titol.substring(0, 20);
//			}
//			
//			subscripcions.put(titol,url);
//		}
//		
//		return SUCCESS;
//	}

	public String listSubscripcionsAutocomplete(){
		
		session = ActionContext.getContext().getSession();
		Usuari usuari = ((Usuari)session.get(Constants.SESSIO_USUARI_AUTENTICAT));

		List<Subscripcio> llistaSubscripcions = subscripcioService.getListSubscripcions(usuari);
		session.put(Constants.SESSIO_LLISTA_SUBSCRIPCIONS, llistaSubscripcions);

		List<SubscripcioJSONWrapper> liJSON = new ArrayList<SubscripcioJSONWrapper>();
		
		Iterator it=llistaSubscripcions.iterator();
		
		SubscripcioJSONWrapper sJSON;
		
		while (it.hasNext())
		{
			Subscripcio subs = (Subscripcio)it.next();
			sJSON = new SubscripcioJSONWrapper();
			sJSON.setId(subs.getId());
			sJSON.setFeed(subs.getFeed());
			liJSON.add(sJSON);
		}
		
		setLiSubscripcions(liJSON);
		
		return SUCCESS;
	}
}
